/*
 * Copyright 2016-2017 TVI Go Easy.
 * Created on 2017/4/24 12:19
 */
package org.mechanic.fund.service.product;

import org.mechanic.fund.domain.product.ProductNetvalue;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;

import java.util.List;

/**
 * 产品净值服务接口
 *
 * @author mechanic
 * @version 0.0.1
 */
public interface IProductNetvalueService {
    /**
     * 返回每类基准信息最新的一条记录
     *
     * @return 每类基准信息最新的一条记录
     */
    Page<ProductNetvalue> getProductNetvalueNewestList(PageRequest pageRequest);
    /**
     * 返回匹配指定产品编号的按createTime降序排列的产品净值列表
     * @param productId 产品编号
     * @param pageRequest 分页参数
     * @return 产品净值列表
     */
    Page<ProductNetvalue> getProductNetvalueList(String productId, PageRequest pageRequest);

    /**
     * 返回匹配指定主键编号的对象
     *
     * @param id 主键编号
     * @return 对象实体
     */
    public ProductNetvalue getById(String id);

    /**
     * 保存。 主键为空则create，不为空则update。
     *
     * @param productNetvalues 被保存的对象
     */
    void save(List<ProductNetvalue> productNetvalues, String operationUserId);

    /**
     * 删除匹配主键ID的对象
     *
     * @param id 主键ID
     */
    void delete(String id);
}
